Randomized Testing of Byzantine Fault Tolerant Algorithms
نویسندگان
چکیده
Byzantine fault-tolerant algorithms promise agreement on a correct value, even if subset of processes can deviate from the algorithm arbitrarily. While these provide strong guarantees in theory, practice, protocol bugs and implementation mistakes may still cause them to go wrong. This paper introduces ByzzFuzz, simple yet effective method for automatically finding errors implementations through randomized testing. ByzzFuzz detects fault-tolerance by injecting randomly generated network process faults into their executions. To navigate space possible faults, small-scope message mutations which mutate contents messages applying small changes original either value (e.g., incrementing round number) or time repeating proposal previous message). We find that mutations, combined with insights testing fuzzing literature, are at uncovering logic real-world systems. implemented applied it test production two popular blockchain systems, Tendermint Ripple, an seminal PBFT protocol. detected several PBFT, potential liveness violation Tendermint, materialized theoretically described vulnerabilities Ripple’s XRP Ledger Consensus Algorithm. Moreover, we discovered previously unknown bug is confirmed developers fixed.
منابع مشابه
A study of Byzantine fault-tolerant algorithms
Malicious attacks and software errors are increasingly common. The growing reliance of industry and government on online information services makes malicious attacks more attractive and makes the consequences of successful attacks more serious. In addition, the number of software errors is increasing due to the growth in size and complexity of software. Since malicious attacks and software erro...
متن کاملByzantine Fault-Tolerant Confidentiality
As the world becomes increasingly interconnected, more and more important services such as business transactions are deployed as access anywhere services – services that are accessible by remote devices through the Internet and mobile networks. Such services often must access confidential data to provide service. For example, an online bank service must access a user’s checking account to proce...
متن کاملByzantine Fault Tolerant Authentication
A Byzantine fault tolerant public key infrastructure is presented. It aims to fulfill the authentication requirements of large distributed systems consisting of semi-trusted parties. The distributed trust model does not demand the existence of predefined trusted parties and provides authentication if more than a threshold of the participants are honest. A voting based protocol implements distri...
متن کاملClasses of Byzantine Fault-tolerant Algorithms for Dependable Distributed Systems
1 1.1. Dependable computer systems 1 1.1.1. Dependability attributes 2 1.1.2. The impairments to dependability 3 1.1.2.1. Faults, errors, and failures 3 1.1.2.2. Fault and failure classification 3 1.1.3. Dependability measures 5 1.1.4. The means of dependability 7 1.1.5. Overview 11 1.2. Fault detection techniques 11 1.2.1. Duplication 11 1.2.2. Error-detecting codes 12 1.2.3. Checksums 12 1.2....
متن کاملA Byzantine Fault Tolerant Raft
Just like how Paxos is hard to understand, PBFT is also hard to understand. Therefore, we want to formulate a Byzantine Fault Tolerant distributed file system that is easy to understand. Therefore, we took inspiration from Raft, PBFT, as well as Blockchains (because it’s the latest fad) to create a simple BFT algorithm.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2023
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3586053